package com.cms.recursoshumanos.handler;

import java.util.Calendar;
import java.util.Date;

import com.cms.recursoshumanos.cache.ListaReservacionCache;
import com.cms.recursoshumanos.facade.ListaReservacionActivityFacade;
import com.cms.recursoshumanos.utilities.Tool;

public class ListaReservacionActivityHandler
{


	public String facadeListaReservacionScreen(String username, String password, Date fecha_selec)
	{
		
		Date fecha_inic = getValorInicFecha(fecha_selec);
		Date fecha_fin = getValorFinFecha(fecha_selec);
		ListaReservacionCache.getInstance().setFechaSelecc(fecha_inic);
		
		ListaReservacionActivityFacade lista_reservacion_facade = new ListaReservacionActivityFacade(username,
																									password,
																									Tool.getInstance().parseDateToString(fecha_inic, 1), 
																									Tool.getInstance().parseDateToString(fecha_fin, 1));

		return lista_reservacion_facade.enviarSolicitud();
		
	}
	public String refreshListadoReservaciones (String username, String password, Date fecha_selecc)
	{
		return this.facadeListaReservacionScreen(username, password, fecha_selecc);
	}
	public String getListadoReservaciones (String username, String password, Date fecha_selecc)
	{
	
		return this.facadeListaReservacionScreen(username, password, fecha_selecc);
		
	}
	

	public Date getValorInicFecha(Date fecha)
	{
		Calendar cal1 = Calendar.getInstance();
		cal1.setTime(fecha);
		
		cal1.set(Calendar.HOUR_OF_DAY, 0);
		cal1.set(Calendar.MINUTE, 0);
		cal1.set(Calendar.SECOND, 0);
		
		cal1.set(Calendar.DAY_OF_MONTH, 1);
		
		return cal1.getTime();
		
	}
	public Date getValorFinFecha(Date fecha)
	{
		Calendar cal2 = Calendar.getInstance();
		cal2.setTime(fecha);
		
		cal2.set(Calendar.HOUR_OF_DAY, 0);
		cal2.set(Calendar.MINUTE, 0);
		cal2.set(Calendar.SECOND, 0);
		
		cal2.set(Calendar.DAY_OF_MONTH, 1);

		int month_new = cal2.get(Calendar.MONTH);
		cal2.set(Calendar.MONTH, month_new + 1); 
		
        cal2.set(Calendar.HOUR_OF_DAY, -1);  
        
        return cal2.getTime();
	}

	
}

